/*
 * TextFieldTableProperties.java
 *
 * Copyright 2011 Universidad Francisco de Paula Santander (UFPS).
 * Todos los Derechos Reservados.
 * Creado el 11/01/2011, 11:23:38 AM
 */

package com.ufps.cuatro.util.editor;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JTextField;

import com.ufps.cuatro.controlador.render.UtilRender;
import com.ufps.cuatro.modelo.asistente.ContenedorRegistroTabla;
import com.ufps.cuatro.modelo.representacion.Propiedad;

/**
 * <i><b>TextFieldTableProperties:</b></i>  @DescripcionClase
 * @author Carlos A. Torres C. - Dolly E. Guerrero. <https://code.google.com/p/tesis4dor/>
 * @version 1.0 11/01/2011
 * @see JTextField
 * @see ActionListener
 */
public class TextFieldTableProperties extends JTextField implements ActionListener{
    private static final long serialVersionUID = 6125768258572765654L;

    private Propiedad objPropiedad;
    private ContenedorRegistroTabla objPropiedadDistribucion;
    
    private int modo = 0;;

    /**
     * @DescripcionMetodo
     * @param objPropiedad @DescripcionParametro
     * @param text @DescripcionParametro
     */
    public TextFieldTableProperties(Propiedad objPropiedad, String text) {
        super(text);
        this.objPropiedad = objPropiedad;
        this.objPropiedad.getObjParametrosSet().get(0).setStrValue(text);
        this.addActionListener(TextFieldTableProperties.this);
        this.setToolTipText("Ingrese un Valor para la Propiedad.");
        this.modo = 1;        
        if(objPropiedad != null){
            boolean isEditable = objPropiedad.isEditable();
            this.setEditable(isEditable);
            if(!isEditable){
                UtilRender.msgAdvertencia("<html>La Propiedad: <b>" + objPropiedad.getName() + "</b> No es Editable.</html>");
            }                
        }
    }

    /**
     * @DescripcionMetodo
     * @param objPropiedad @DescripcionParametro
     */
    public TextFieldTableProperties(Propiedad objPropiedad) {
        super(objPropiedad == null ? "" : objPropiedad.getObjParametrosSet().get(0).getStrValue());
        this.objPropiedad = objPropiedad;
        this.addActionListener(TextFieldTableProperties.this);
        this.setToolTipText("Ingrese un Valor para la Propiedad.");
        this.modo = 1;
        if(objPropiedad != null){
            this.setEditable(objPropiedad.isEditable());
        }
    }

    public TextFieldTableProperties(ContenedorRegistroTabla objPropiedadDistribucion) {
        super(String.valueOf(objPropiedadDistribucion.getObjValue()));
        this.objPropiedadDistribucion = objPropiedadDistribucion;
        this.addActionListener(TextFieldTableProperties.this);
        this.setToolTipText("Ingrese un Valor para la Propiedad.");
        this.modo = 2;
        if(objPropiedadDistribucion != null){
            this.setEditable(objPropiedadDistribucion.isEditable());
        }
    }   

    public void actionPerformed(ActionEvent e) {
        try{
            if(modo == 1){
                this.objPropiedad.getObjParametrosSet().get(0).setStrValue(this.getText());
            }
            else if(modo == 2){
                this.objPropiedadDistribucion.setObjValue(this.getText());
            }
            this.selectAll();
        }catch(java.lang.Exception ex){}
        
    }
}
